﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;


namespace 循环结构while
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             while(循环条件)
            {
	            循环体;
            }
            执行过程：程序运行到while处，首先判断while所带的小括号内的循环条件是否成立，
            如果成立的话，也就是返回一个true，则执行循环体，执行完一遍循环体后，再次回到
            循环条件进行判断，如果依然成立，则继续执行循环体，如果不成立，则跳出while循环。
            在while循环当中，一般总会有那么一行代码，能够改变循环条件，使之终有一天不再成立，
            如果没有那么一行代码能够改变循环条件，也就是循环条件永远都成立，我们称之这种循环叫做死循环。
            最简单的最常用的死循环：
            while(true)
            {
            }

            特点：先判断，再执行，有可能一遍循环都不执行。
          break关键字
            1、可以跳出switch-case结构。
            2、可以跳出当前循环。
            break一般不单独的使用，而是跟着if判断一起使用，表示，当满足某些条件的时候，就不再循环了。
             */

            string quick = "exit";//跳出循环关键字
            bool whether = true;//跳出循环条件 
            Dictionary<int, string> dic = new Dictionary<int, string>();
            int i = 1;//限制只能输入100次
            while (whether&&i<=100)
            {
                Console.Write("请输入数据：");
                string inpute = Console.ReadLine();
                if (string.Equals(inpute, quick, StringComparison.CurrentCultureIgnoreCase)||string.Equals(inpute,"quick",StringComparison.CurrentCultureIgnoreCase))
                {
                    //如果输入exit或quick关键字不论大小写将Whether设为False
                   // whether = false;
                   break;//但是如果不用break关键字跳出循环则还会往下执行导致EXIT退出命令也会被写入字典
                }
                if  (inpute=="")//如果要利用whether条件跳出循环这里要else if 考虑性能还是用break关键字
                {
                    Console.WriteLine("输入无效数据...请从新输入!");

                }
                else
                {
                    dic.Add(i, inpute);
                    i++;
                }
               

            }
            Console.WriteLine("数据表");
            foreach (KeyValuePair<int, string> kv in dic)
            {
                Console.WriteLine("{0}    {1}", kv.Key, kv.Value);
            }
            Console.ReadKey();
        }
    }
}
